Contact centers employ agents to interact with customers. Historically, these interactions were via phone calls. However, today these interactions may be based on many other technical modalities including email, real-time web chat, video, fax, Short Message Service (SMS), physical mail and multi-modal combinations of these. Consequently, “Call centers” have become generalized to “Contact Centers” (that still include the phone-based voice modality).
Conventional contact center technologies assign and route those customer contacts to a contact center agent based on the needs of the customer, the customer's interaction history (i.e., whether the current interaction is related to a previous one), and the availability of an appropriate agent. Contact centers typically have groups of agents that handle different contact content areas and/or modality. For example, there may be one group of agents that handles sales inquiries, another group that handles customer complaints, and yet another group that handles billing questions. In some contact center implementations, agent groups (commonly called “splits”) are replaced by sets of agents with all agents in a set having a common skill attribute (such as accounting expertise, for example.) Since agents typically possible multiple skills, they may be simultaneously in multiple agent skill sets. Agents can be moved manually from one group to another (or added to another) to a new group (or, equivalently, by having the agent's new skill entered in the contact center's agent database) by contact center managers utilizing a software administration function. Managers can reassign agents to different groups manually (guided by contact center data reports) based on changes in the contact center's staffing needs, performance and/or changes in the agents' abilities.